<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Eigen-unsupported: Eigen::EulerAngles&lt; Scalar_, _System &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script>
<script type="text/javascript" async="async" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="eigendoxy.css" rel="stylesheet" type="text/css">
<!--  -->
<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="Eigen_Silly_Professor_64x64.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname"><a href="http://eigen.tuxfamily.org">Eigen-unsupported</a>
   &#160;<span id="projectnumber">3.4.90 (git rev 67eeba6e720c5745abc77ae6c92ce0a44aa7b7ae)</span>
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.svg"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.svg" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classEigen_1_1EulerAngles.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="classEigen_1_1EulerAngles-members.html">List of all members</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-static-methods">Static Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">Eigen::EulerAngles&lt; Scalar_, _System &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__EulerAngles__Module.html">EulerAngles module</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename Scalar_, class _System&gt;<br />
class Eigen::EulerAngles&lt; Scalar_, _System &gt;</h3>

<p>Represents a rotation in a 3 dimensional space as three Euler angles. </p>
<p>Euler rotation is a set of three rotation of three angles over three fixed axes, defined by the <a class="el" href="classEigen_1_1EulerSystem.html" title="Represents a fixed Euler rotation system.">EulerSystem</a> given as a template parameter.</p>
<p>Here is how intrinsic Euler angles works:</p><ul>
<li>first, rotate the axes system over the alpha axis in angle alpha</li>
<li>then, rotate the axes system over the beta axis(which was rotated in the first stage) in angle beta</li>
<li>then, rotate the axes system over the gamma axis(which was rotated in the two stages above) in angle gamma</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>This class support only intrinsic Euler angles for simplicity, see <a class="el" href="classEigen_1_1EulerSystem.html" title="Represents a fixed Euler rotation system.">EulerSystem</a> how to easily overcome this for extrinsic systems.</dd></dl>
<h3><a class="anchor" id="autotoc_md117"></a>
Rotation representation and conversions</h3>
<p>It has been proved(see Wikipedia link below) that every rotation can be represented by Euler angles, but there is no single representation (e.g. unlike rotation matrices). Therefore, you can convert from <a class="el" href="namespaceEigen.html" title="Namespace containing all symbols from the Eigen library.">Eigen</a> rotation and to them (including rotation matrices, which is not called "rotations" by <a class="el" href="namespaceEigen.html" title="Namespace containing all symbols from the Eigen library.">Eigen</a> design).</p>
<p>Euler angles usually used for:</p><ul>
<li>convenient human representation of rotation, especially in interactive GUI.</li>
<li>gimbal systems and robotics</li>
<li>efficient encoding(i.e. 3 floats only) of rotation for network protocols.</li>
</ul>
<p>However, Euler angles are slow comparing to quaternion or matrices, because their unnatural math definition, although it's simple for human. To overcome this, this class provide easy movement from the math friendly representation to the human friendly representation, and vise-versa.</p>
<p>All the user need to do is a safe simple C++ type conversion, and this class take care for the math. Additionally, some axes related computation is done in compile time.</p>
<h4><a class="anchor" id="autotoc_md118"></a>
Euler angles ranges in conversions</h4>
<p>Rotations representation as <a class="el" href="classEigen_1_1EulerAngles.html" title="Represents a rotation in a 3 dimensional space as three Euler angles.">EulerAngles</a> are not single (unlike matrices), and even have infinite <a class="el" href="classEigen_1_1EulerAngles.html" title="Represents a rotation in a 3 dimensional space as three Euler angles.">EulerAngles</a> representations.<br  />
 For example, add or subtract 2*PI from either angle of <a class="el" href="classEigen_1_1EulerAngles.html" title="Represents a rotation in a 3 dimensional space as three Euler angles.">EulerAngles</a> and you'll get the same rotation. This is the general reason for infinite representation, but it's not the only general reason for not having a single representation.</p>
<p>When converting rotation to <a class="el" href="classEigen_1_1EulerAngles.html" title="Represents a rotation in a 3 dimensional space as three Euler angles.">EulerAngles</a>, this class convert it to specific ranges When converting some rotation to <a class="el" href="classEigen_1_1EulerAngles.html" title="Represents a rotation in a 3 dimensional space as three Euler angles.">EulerAngles</a>, the rules for ranges are as follow:</p><ul>
<li>If the rotation we converting from is an <a class="el" href="classEigen_1_1EulerAngles.html" title="Represents a rotation in a 3 dimensional space as three Euler angles.">EulerAngles</a> (even when it represented as <a class="elRef" href="../classEigen_1_1RotationBase.html">RotationBase</a> explicitly), angles ranges are <b>undefined</b>.</li>
<li>otherwise, alpha and gamma angles will be in the range [-PI, PI].<br  />
 As for Beta angle:<ul>
<li>If the system is Tait-Bryan, the beta angle will be in the range [-PI/2, PI/2].</li>
<li>otherwise:<ul>
<li>If the beta axis is positive, the beta angle will be in the range [0, PI]</li>
<li>If the beta axis is negative, the beta angle will be in the range [-PI, 0]</li>
</ul>
</li>
</ul>
</li>
</ul>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classEigen_1_1EulerAngles.html#a8eee875698fd7dfb4a0a0a101dfaffc1">EulerAngles(const MatrixBase&lt;Derived&gt;&amp;)</a> </dd>
<dd>
<a class="el" href="classEigen_1_1EulerAngles.html#aa4bd914c869a7ad06252eb9672326a06">EulerAngles(const RotationBase&lt;Derived, 3&gt;&amp;)</a></dd></dl>
<h3><a class="anchor" id="autotoc_md119"></a>
Convenient user typedefs</h3>
<p>Convenient typedefs for <a class="el" href="classEigen_1_1EulerAngles.html" title="Represents a rotation in a 3 dimensional space as three Euler angles.">EulerAngles</a> exist for float and double scalar, in a form of <a class="el" href="classEigen_1_1EulerAngles.html" title="Represents a rotation in a 3 dimensional space as three Euler angles.">EulerAngles</a>{A}{B}{C}{scalar}, e.g. EulerAnglesXYZd, EulerAnglesZYZf.</p>
<p>Only for positive axes{+x,+y,+z} Euler systems are have convenient typedef. If you need negative axes{-x,-y,-z}, it is recommended to create you own typedef with a word that represent what you need.</p>
<h3><a class="anchor" id="autotoc_md120"></a>
Example</h3>
<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;unsupported/Eigen/EulerAngles&gt;</span></div>
<div class="line"><span class="preprocessor">#include &lt;iostream&gt;</span></div>
<div class="line"> </div>
<div class="line"><span class="keyword">using namespace </span><a class="code" href="namespaceEigen.html">Eigen</a>;</div>
<div class="line"> </div>
<div class="line"><span class="keywordtype">int</span> main()</div>
<div class="line">{</div>
<div class="line">  <span class="comment">// A common Euler system by many armies around the world,</span></div>
<div class="line">  <span class="comment">//  where the first one is the azimuth(the angle from the north -</span></div>
<div class="line">  <span class="comment">//   the same angle that is show in compass)</span></div>
<div class="line">  <span class="comment">//  and the second one is elevation(the angle from the horizon)</span></div>
<div class="line">  <span class="comment">//  and the third one is roll(the angle between the horizontal body</span></div>
<div class="line">  <span class="comment">//   direction and the plane ground surface)</span></div>
<div class="line">  <span class="comment">// Keep remembering we&#39;re using radian angles here!</span></div>
<div class="line">  <span class="keyword">typedef</span> EulerSystem&lt;-<a class="code" href="group__EulerAngles__Module.html#ggae614aa7cdd687fb5c421a54f2ce5c361a95187b9943820cca5edc4bc96b3c08be">EULER_Z</a>, <a class="code" href="group__EulerAngles__Module.html#ggae614aa7cdd687fb5c421a54f2ce5c361aee756a2b63043248f3d83541386c266b">EULER_Y</a>, <a class="code" href="group__EulerAngles__Module.html#ggae614aa7cdd687fb5c421a54f2ce5c361a11e1ea88cbe04a6fc077475d515d0b38">EULER_X</a>&gt; MyArmySystem;</div>
<div class="line">  <span class="keyword">typedef</span> EulerAngles&lt;double, MyArmySystem&gt; MyArmyAngles;</div>
<div class="line">  </div>
<div class="line">  MyArmyAngles vehicleAngles(</div>
<div class="line">    3.14<span class="comment">/*PI*/</span> / 2, <span class="comment">/* heading to east, notice that this angle is counter-clockwise */</span></div>
<div class="line">    -0.3, <span class="comment">/* going down from a mountain */</span></div>
<div class="line">    0.1); <span class="comment">/* slightly rolled to the right */</span></div>
<div class="line">  </div>
<div class="line">  <span class="comment">// Some Euler angles representation that our plane use.</span></div>
<div class="line">  EulerAnglesZYZd planeAngles(0.78474, 0.5271, -0.513794);</div>
<div class="line">  </div>
<div class="line">  MyArmyAngles planeAnglesInMyArmyAngles(planeAngles);</div>
<div class="line">  </div>
<div class="line">  std::cout &lt;&lt; <span class="stringliteral">&quot;vehicle angles(MyArmy):     &quot;</span> &lt;&lt; vehicleAngles &lt;&lt; std::endl;</div>
<div class="line">  std::cout &lt;&lt; <span class="stringliteral">&quot;plane angles(ZYZ):        &quot;</span> &lt;&lt; planeAngles &lt;&lt; std::endl;</div>
<div class="line">  std::cout &lt;&lt; <span class="stringliteral">&quot;plane angles(MyArmy):     &quot;</span> &lt;&lt; planeAnglesInMyArmyAngles &lt;&lt; std::endl;</div>
<div class="line">  </div>
<div class="line">  <span class="comment">// Now lets rotate the plane a little bit</span></div>
<div class="line">  std::cout &lt;&lt; <span class="stringliteral">&quot;==========================================================\n&quot;</span>;</div>
<div class="line">  std::cout &lt;&lt; <span class="stringliteral">&quot;rotating plane now!\n&quot;</span>;</div>
<div class="line">  std::cout &lt;&lt; <span class="stringliteral">&quot;==========================================================\n&quot;</span>;</div>
<div class="line">  </div>
<div class="line">  <a class="codeRef" href="../group__Geometry__Module.html#ga5daab8e66aa480465000308455578830">Quaterniond</a> planeRotated = <a class="codeRef" href="../group__Geometry__Module.html#gaed936d6e9192d97f00a9608081fa9b64">AngleAxisd</a>(-0.342, <a class="codeRef" href="../classEigen_1_1MatrixBase.html#a00850083489e20249b1d05b394fc5efc">Vector3d::UnitY</a>()) * planeAngles;</div>
<div class="line">  </div>
<div class="line">  planeAngles = planeRotated;</div>
<div class="line">  planeAnglesInMyArmyAngles = planeRotated;</div>
<div class="line">  </div>
<div class="line">  std::cout &lt;&lt; <span class="stringliteral">&quot;new plane angles(ZYZ):     &quot;</span> &lt;&lt; planeAngles &lt;&lt; std::endl;</div>
<div class="line">  std::cout &lt;&lt; <span class="stringliteral">&quot;new plane angles(MyArmy): &quot;</span> &lt;&lt; planeAnglesInMyArmyAngles &lt;&lt; std::endl;</div>
<div class="line">  </div>
<div class="line">  <span class="keywordflow">return</span> 0;</div>
<div class="line">}</div>
<div class="ttc" id="aclassEigen_1_1MatrixBase_html_a00850083489e20249b1d05b394fc5efc"><div class="ttname"><a href="../classEigen_1_1MatrixBase.html#a00850083489e20249b1d05b394fc5efc">Eigen::MatrixBase::UnitY</a></div><div class="ttdeci">static const BasisReturnType UnitY()</div></div>
<div class="ttc" id="agroup__EulerAngles__Module_html_ggae614aa7cdd687fb5c421a54f2ce5c361a11e1ea88cbe04a6fc077475d515d0b38"><div class="ttname"><a href="group__EulerAngles__Module.html#ggae614aa7cdd687fb5c421a54f2ce5c361a11e1ea88cbe04a6fc077475d515d0b38">Eigen::EULER_X</a></div><div class="ttdeci">@ EULER_X</div><div class="ttdef"><b>Definition:</b> EulerSystem.h:65</div></div>
<div class="ttc" id="agroup__EulerAngles__Module_html_ggae614aa7cdd687fb5c421a54f2ce5c361a95187b9943820cca5edc4bc96b3c08be"><div class="ttname"><a href="group__EulerAngles__Module.html#ggae614aa7cdd687fb5c421a54f2ce5c361a95187b9943820cca5edc4bc96b3c08be">Eigen::EULER_Z</a></div><div class="ttdeci">@ EULER_Z</div><div class="ttdef"><b>Definition:</b> EulerSystem.h:67</div></div>
<div class="ttc" id="agroup__EulerAngles__Module_html_ggae614aa7cdd687fb5c421a54f2ce5c361aee756a2b63043248f3d83541386c266b"><div class="ttname"><a href="group__EulerAngles__Module.html#ggae614aa7cdd687fb5c421a54f2ce5c361aee756a2b63043248f3d83541386c266b">Eigen::EULER_Y</a></div><div class="ttdeci">@ EULER_Y</div><div class="ttdef"><b>Definition:</b> EulerSystem.h:66</div></div>
<div class="ttc" id="agroup__Geometry__Module_html_ga5daab8e66aa480465000308455578830"><div class="ttname"><a href="../group__Geometry__Module.html#ga5daab8e66aa480465000308455578830">Quaterniond</a></div><div class="ttdeci">Quaternion&lt; double &gt; Quaterniond</div></div>
<div class="ttc" id="agroup__Geometry__Module_html_gaed936d6e9192d97f00a9608081fa9b64"><div class="ttname"><a href="../group__Geometry__Module.html#gaed936d6e9192d97f00a9608081fa9b64">Eigen::AngleAxisd</a></div><div class="ttdeci">AngleAxis&lt; double &gt; AngleAxisd</div></div>
<div class="ttc" id="anamespaceEigen_html"><div class="ttname"><a href="namespaceEigen.html">Eigen</a></div><div class="ttdoc">Namespace containing all symbols from the Eigen library.</div></div>
</div><!-- fragment --><p> Output: </p><pre class="fragment">vehicle angles(MyArmy):     1.57 -0.3  0.1
plane angles(ZYZ):          0.78474    0.5271 -0.513794
plane angles(MyArmy):     -0.206273  0.453463 -0.278617
==========================================================
rotating plane now!
==========================================================
new plane angles(ZYZ):      1.44358 0.366507 -1.23637
new plane angles(MyArmy):  -0.18648  0.117896 -0.347841
</pre><h3><a class="anchor" id="autotoc_md121"></a>
Additional reading</h3>
<p>If you're want to get more idea about how Euler system work in <a class="el" href="namespaceEigen.html" title="Namespace containing all symbols from the Eigen library.">Eigen</a> see <a class="el" href="classEigen_1_1EulerSystem.html" title="Represents a fixed Euler rotation system.">EulerSystem</a>.</p>
<p>More information about Euler angles: <a href="https://en.wikipedia.org/wiki/Euler_angles">https://en.wikipedia.org/wiki/Euler_angles</a></p>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">Scalar_</td><td>the scalar type, i.e. the type of the angles.</td></tr>
    <tr><td class="paramname">_System</td><td>the <a class="el" href="classEigen_1_1EulerSystem.html" title="Represents a fixed Euler rotation system.">EulerSystem</a> to use, which represents the axes of rotation. </td></tr>
  </table>
  </dd>
</dl>
</div><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for Eigen::EulerAngles&lt; Scalar_, _System &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classEigen_1_1EulerAngles__inherit__graph.png" border="0" usemap="#aEigen_1_1EulerAngles_3_01Scalar___00_01__System_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="aEigen_1_1EulerAngles_3_01Scalar___00_01__System_01_4_inherit__map" id="aEigen_1_1EulerAngles_3_01Scalar___00_01__System_01_4_inherit__map">
<area shape="rect" title="Represents a rotation in a 3 dimensional space as three Euler angles." alt="" coords="6,248,158,531"/>
<area shape="rect" target="_parent" href="../classEigen_1_1RotationBase.html" title=" " alt="" coords="5,5,159,200"/>
</map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a5342f1946064f4dc87f27e9d7ef3b944"><td class="memItemLeft" align="right" valign="top">typedef <a class="elRef" href="../classEigen_1_1AngleAxis.html">AngleAxis</a>&lt; <a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a5342f1946064f4dc87f27e9d7ef3b944">AngleAxisType</a></td></tr>
<tr class="separator:a5342f1946064f4dc87f27e9d7ef3b944"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9af783749247585b5660ed5209241759"><td class="memItemLeft" align="right" valign="top">typedef <a class="elRef" href="../classEigen_1_1Matrix.html">Matrix</a>&lt; <a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a>, 3, 3 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a9af783749247585b5660ed5209241759">Matrix3</a></td></tr>
<tr class="separator:a9af783749247585b5660ed5209241759"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3000fb4d6de76cf9b68ae2766e4dd1c6"><td class="memItemLeft" align="right" valign="top">typedef <a class="elRef" href="../classEigen_1_1Quaternion.html">Quaternion</a>&lt; <a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a3000fb4d6de76cf9b68ae2766e4dd1c6">QuaternionType</a></td></tr>
<tr class="separator:a3000fb4d6de76cf9b68ae2766e4dd1c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7893abd67974354b798200b3b458262f"><td class="memItemLeft" align="right" valign="top">typedef Scalar_&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a></td></tr>
<tr class="separator:a7893abd67974354b798200b3b458262f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1462fffa812b7bec67c8f2e2b2daca52"><td class="memItemLeft" align="right" valign="top">typedef _System&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a1462fffa812b7bec67c8f2e2b2daca52">System</a></td></tr>
<tr class="separator:a1462fffa812b7bec67c8f2e2b2daca52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc9885adf8d93f64b74413aa1df38760"><td class="memItemLeft" align="right" valign="top">typedef <a class="elRef" href="../classEigen_1_1Matrix.html">Matrix</a>&lt; <a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a>, 3, 1 &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#adc9885adf8d93f64b74413aa1df38760">Vector3</a></td></tr>
<tr class="separator:adc9885adf8d93f64b74413aa1df38760"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ac3a564a92a4b43e24f267f968a4338b2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#ac3a564a92a4b43e24f267f968a4338b2">alpha</a> ()</td></tr>
<tr class="separator:ac3a564a92a4b43e24f267f968a4338b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a271449e2a6b745b4e97f7546bef1bc0a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a271449e2a6b745b4e97f7546bef1bc0a">alpha</a> () const</td></tr>
<tr class="separator:a271449e2a6b745b4e97f7546bef1bc0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86c18f2f491ecd7e1c1bd41ce5a58034"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1EulerAngles.html#adc9885adf8d93f64b74413aa1df38760">Vector3</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a86c18f2f491ecd7e1c1bd41ce5a58034">angles</a> ()</td></tr>
<tr class="separator:a86c18f2f491ecd7e1c1bd41ce5a58034"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a430d0f255f3a671433fb2d81b7759347"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classEigen_1_1EulerAngles.html#adc9885adf8d93f64b74413aa1df38760">Vector3</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a430d0f255f3a671433fb2d81b7759347">angles</a> () const</td></tr>
<tr class="separator:a430d0f255f3a671433fb2d81b7759347"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8fdec84c62624ab5950eb0855d176464"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a8fdec84c62624ab5950eb0855d176464">beta</a> ()</td></tr>
<tr class="separator:a8fdec84c62624ab5950eb0855d176464"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8701809550b7423d8747b2c54d54a758"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a8701809550b7423d8747b2c54d54a758">beta</a> () const</td></tr>
<tr class="separator:a8701809550b7423d8747b2c54d54a758"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2add1e1c2cdae9305d759c1f515fb4ef"><td class="memTemplParams" colspan="2">template&lt;typename NewScalarType &gt; </td></tr>
<tr class="memitem:a2add1e1c2cdae9305d759c1f515fb4ef"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a>&lt; NewScalarType, <a class="el" href="classEigen_1_1EulerAngles.html#a1462fffa812b7bec67c8f2e2b2daca52">System</a> &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a2add1e1c2cdae9305d759c1f515fb4ef">cast</a> () const</td></tr>
<tr class="separator:a2add1e1c2cdae9305d759c1f515fb4ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abe1367f90d728dd7b230d9589cefec89"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#abe1367f90d728dd7b230d9589cefec89">EulerAngles</a> ()</td></tr>
<tr class="separator:abe1367f90d728dd7b230d9589cefec89"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8eee875698fd7dfb4a0a0a101dfaffc1"><td class="memTemplParams" colspan="2">template&lt;typename Derived &gt; </td></tr>
<tr class="memitem:a8eee875698fd7dfb4a0a0a101dfaffc1"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a8eee875698fd7dfb4a0a0a101dfaffc1">EulerAngles</a> (const <a class="elRef" href="../classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; Derived &gt; &amp;other)</td></tr>
<tr class="separator:a8eee875698fd7dfb4a0a0a101dfaffc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4bd914c869a7ad06252eb9672326a06"><td class="memTemplParams" colspan="2">template&lt;typename Derived &gt; </td></tr>
<tr class="memitem:aa4bd914c869a7ad06252eb9672326a06"><td class="memTemplItemLeft" align="right" valign="top">&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#aa4bd914c869a7ad06252eb9672326a06">EulerAngles</a> (const <a class="elRef" href="../classEigen_1_1RotationBase.html">RotationBase</a>&lt; Derived, 3 &gt; &amp;rot)</td></tr>
<tr class="separator:aa4bd914c869a7ad06252eb9672326a06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c2909797afa7e7d4efdad3d883c914b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a3c2909797afa7e7d4efdad3d883c914b">EulerAngles</a> (const <a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> &amp;<a class="el" href="classEigen_1_1EulerAngles.html#a271449e2a6b745b4e97f7546bef1bc0a">alpha</a>, const <a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> &amp;<a class="el" href="classEigen_1_1EulerAngles.html#a8701809550b7423d8747b2c54d54a758">beta</a>, const <a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> &amp;<a class="el" href="classEigen_1_1EulerAngles.html#a73fad7a6e7becb9407fa726fa2d8fded">gamma</a>)</td></tr>
<tr class="separator:a3c2909797afa7e7d4efdad3d883c914b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a430e6d50569d0f10a067e13019ce0b1d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a430e6d50569d0f10a067e13019ce0b1d">EulerAngles</a> (const <a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> *data)</td></tr>
<tr class="separator:a430e6d50569d0f10a067e13019ce0b1d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5111ba70822f6f057e6a294fafa6cb11"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a5111ba70822f6f057e6a294fafa6cb11">gamma</a> ()</td></tr>
<tr class="separator:a5111ba70822f6f057e6a294fafa6cb11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a73fad7a6e7becb9407fa726fa2d8fded"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a73fad7a6e7becb9407fa726fa2d8fded">gamma</a> () const</td></tr>
<tr class="separator:a73fad7a6e7becb9407fa726fa2d8fded"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a88d41eba39cf221a9437028fb6431948"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a88d41eba39cf221a9437028fb6431948">inverse</a> () const</td></tr>
<tr class="separator:a88d41eba39cf221a9437028fb6431948"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaba297075906f560e8c9b369b4b47cc6"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#aaba297075906f560e8c9b369b4b47cc6">isApprox</a> (const <a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a> &amp;other, const RealScalar &amp;prec=<a class="elRef" href="../structEigen_1_1NumTraits.html">NumTraits</a>&lt; <a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> &gt;::dummy_precision()) const</td></tr>
<tr class="separator:aaba297075906f560e8c9b369b4b47cc6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0de66ebc0a5fafb3e9c02acab6ef7f66"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a0de66ebc0a5fafb3e9c02acab6ef7f66">operator QuaternionType</a> () const</td></tr>
<tr class="separator:a0de66ebc0a5fafb3e9c02acab6ef7f66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a928b1ec13cb2aa8e885b3e0c9ffacfb7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a928b1ec13cb2aa8e885b3e0c9ffacfb7">operator-</a> () const</td></tr>
<tr class="separator:a928b1ec13cb2aa8e885b3e0c9ffacfb7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0d9cccdfc7baa141ad22673fe7cb6b98"><td class="memTemplParams" colspan="2">template&lt;class Derived &gt; </td></tr>
<tr class="memitem:a0d9cccdfc7baa141ad22673fe7cb6b98"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a0d9cccdfc7baa141ad22673fe7cb6b98">operator=</a> (const <a class="elRef" href="../classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; Derived &gt; &amp;other)</td></tr>
<tr class="separator:a0d9cccdfc7baa141ad22673fe7cb6b98"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09721e16bfbbd908adf14f12e5469535"><td class="memTemplParams" colspan="2">template&lt;typename Derived &gt; </td></tr>
<tr class="memitem:a09721e16bfbbd908adf14f12e5469535"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a> &amp;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a09721e16bfbbd908adf14f12e5469535">operator=</a> (const <a class="elRef" href="../classEigen_1_1RotationBase.html">RotationBase</a>&lt; Derived, 3 &gt; &amp;rot)</td></tr>
<tr class="separator:a09721e16bfbbd908adf14f12e5469535"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5db785d10c675039efa3368ded1270ef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1EulerAngles.html#a9af783749247585b5660ed5209241759">Matrix3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a5db785d10c675039efa3368ded1270ef">toRotationMatrix</a> () const</td></tr>
<tr class="separator:a5db785d10c675039efa3368ded1270ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:a293acf98b393c33700fa3ef73ebb5908"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classEigen_1_1EulerAngles.html#adc9885adf8d93f64b74413aa1df38760">Vector3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a293acf98b393c33700fa3ef73ebb5908">AlphaAxisVector</a> ()</td></tr>
<tr class="separator:a293acf98b393c33700fa3ef73ebb5908"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8688fc64fbfe00f0fc13c97ec20de8bf"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classEigen_1_1EulerAngles.html#adc9885adf8d93f64b74413aa1df38760">Vector3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a8688fc64fbfe00f0fc13c97ec20de8bf">BetaAxisVector</a> ()</td></tr>
<tr class="separator:a8688fc64fbfe00f0fc13c97ec20de8bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2097a8d02e36a9d6b847177afa4f40fa"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classEigen_1_1EulerAngles.html#adc9885adf8d93f64b74413aa1df38760">Vector3</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1EulerAngles.html#a2097a8d02e36a9d6b847177afa4f40fa">GammaAxisVector</a> ()</td></tr>
<tr class="separator:a2097a8d02e36a9d6b847177afa4f40fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Typedef Documentation</h2>
<a id="a5342f1946064f4dc87f27e9d7ef3b944"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5342f1946064f4dc87f27e9d7ef3b944">&#9670;&nbsp;</a></span>AngleAxisType</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="elRef" href="../classEigen_1_1AngleAxis.html">AngleAxis</a>&lt;<a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a>&gt; <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::<a class="el" href="classEigen_1_1EulerAngles.html#a5342f1946064f4dc87f27e9d7ef3b944">AngleAxisType</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the equivalent angle-axis type </p>

</div>
</div>
<a id="a9af783749247585b5660ed5209241759"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9af783749247585b5660ed5209241759">&#9670;&nbsp;</a></span>Matrix3</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="elRef" href="../classEigen_1_1Matrix.html">Matrix</a>&lt;<a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a>,3,3&gt; <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::<a class="el" href="classEigen_1_1EulerAngles.html#a9af783749247585b5660ed5209241759">Matrix3</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the equivalent rotation matrix type </p>

</div>
</div>
<a id="a3000fb4d6de76cf9b68ae2766e4dd1c6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3000fb4d6de76cf9b68ae2766e4dd1c6">&#9670;&nbsp;</a></span>QuaternionType</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="elRef" href="../classEigen_1_1Quaternion.html">Quaternion</a>&lt;<a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a>&gt; <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::<a class="el" href="classEigen_1_1EulerAngles.html#a3000fb4d6de76cf9b68ae2766e4dd1c6">QuaternionType</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the equivalent quaternion type </p>

</div>
</div>
<a id="a7893abd67974354b798200b3b458262f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7893abd67974354b798200b3b458262f">&#9670;&nbsp;</a></span>Scalar</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef Scalar_ <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::<a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the scalar type of the angles </p>

</div>
</div>
<a id="a1462fffa812b7bec67c8f2e2b2daca52"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1462fffa812b7bec67c8f2e2b2daca52">&#9670;&nbsp;</a></span>System</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef _System <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::<a class="el" href="classEigen_1_1EulerAngles.html#a1462fffa812b7bec67c8f2e2b2daca52">System</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the <a class="el" href="classEigen_1_1EulerSystem.html" title="Represents a fixed Euler rotation system.">EulerSystem</a> to use, which represents the axes of rotation. </p>

</div>
</div>
<a id="adc9885adf8d93f64b74413aa1df38760"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc9885adf8d93f64b74413aa1df38760">&#9670;&nbsp;</a></span>Vector3</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="elRef" href="../classEigen_1_1Matrix.html">Matrix</a>&lt;<a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a>,3,1&gt; <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::<a class="el" href="classEigen_1_1EulerAngles.html#adc9885adf8d93f64b74413aa1df38760">Vector3</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>the equivalent 3 dimension vector type </p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="abe1367f90d728dd7b230d9589cefec89"></a>
<h2 class="memtitle"><span class="permalink"><a href="#abe1367f90d728dd7b230d9589cefec89">&#9670;&nbsp;</a></span>EulerAngles() <span class="overload">[1/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::<a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Default constructor without initialization. </p>

</div>
</div>
<a id="a3c2909797afa7e7d4efdad3d883c914b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c2909797afa7e7d4efdad3d883c914b">&#9670;&nbsp;</a></span>EulerAngles() <span class="overload">[2/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::<a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> &amp;&#160;</td>
          <td class="paramname"><em>alpha</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> &amp;&#160;</td>
          <td class="paramname"><em>beta</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> &amp;&#160;</td>
          <td class="paramname"><em>gamma</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Constructs and initialize an <a class="el" href="classEigen_1_1EulerAngles.html" title="Represents a rotation in a 3 dimensional space as three Euler angles.">EulerAngles</a> (<code>alpha</code>, <code>beta</code>, <code>gamma</code>). </p>

</div>
</div>
<a id="a430e6d50569d0f10a067e13019ce0b1d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a430e6d50569d0f10a067e13019ce0b1d">&#9670;&nbsp;</a></span>EulerAngles() <span class="overload">[3/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::<a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> *&#160;</td>
          <td class="paramname"><em>data</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Constructs and initialize an <a class="el" href="classEigen_1_1EulerAngles.html" title="Represents a rotation in a 3 dimensional space as three Euler angles.">EulerAngles</a> from the array data {alpha, beta, gamma} </p>

</div>
</div>
<a id="a8eee875698fd7dfb4a0a0a101dfaffc1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8eee875698fd7dfb4a0a0a101dfaffc1">&#9670;&nbsp;</a></span>EulerAngles() <span class="overload">[4/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<div class="memtemplate">
template&lt;typename Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::<a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" href="../classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; Derived &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Constructs and initializes an <a class="el" href="classEigen_1_1EulerAngles.html" title="Represents a rotation in a 3 dimensional space as three Euler angles.">EulerAngles</a> from either:</p><ul>
<li>a 3x3 rotation matrix expression(i.e. pure orthogonal matrix with determinant of +1),</li>
<li>a 3D vector expression representing Euler angles.</li>
</ul>
<dl class="section note"><dt>Note</dt><dd>If <code>other</code> is a 3x3 rotation matrix, the angles range rules will be as follow:<br  />
 Alpha and gamma angles will be in the range [-PI, PI].<br  />
 As for Beta angle:<ul>
<li>If the system is Tait-Bryan, the beta angle will be in the range [-PI/2, PI/2].</li>
<li>otherwise:<ul>
<li>If the beta axis is positive, the beta angle will be in the range [0, PI]</li>
<li>If the beta axis is negative, the beta angle will be in the range [-PI, 0] </li>
</ul>
</li>
</ul>
</dd></dl>

</div>
</div>
<a id="aa4bd914c869a7ad06252eb9672326a06"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4bd914c869a7ad06252eb9672326a06">&#9670;&nbsp;</a></span>EulerAngles() <span class="overload">[5/5]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<div class="memtemplate">
template&lt;typename Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::<a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a> </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" href="../classEigen_1_1RotationBase.html">RotationBase</a>&lt; Derived, 3 &gt; &amp;&#160;</td>
          <td class="paramname"><em>rot</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Constructs and initialize Euler angles from a rotation <code>rot</code>.</p>
<dl class="section note"><dt>Note</dt><dd>If <code>rot</code> is an <a class="el" href="classEigen_1_1EulerAngles.html" title="Represents a rotation in a 3 dimensional space as three Euler angles.">EulerAngles</a> (even when it represented as <a class="elRef" href="../classEigen_1_1RotationBase.html">RotationBase</a> explicitly), angles ranges are <b>undefined</b>. Otherwise, alpha and gamma angles will be in the range [-PI, PI].<br  />
 As for Beta angle:<ul>
<li>If the system is Tait-Bryan, the beta angle will be in the range [-PI/2, PI/2].</li>
<li>otherwise:<ul>
<li>If the beta axis is positive, the beta angle will be in the range [0, PI]</li>
<li>If the beta axis is negative, the beta angle will be in the range [-PI, 0] </li>
</ul>
</li>
</ul>
</dd></dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ac3a564a92a4b43e24f267f968a4338b2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac3a564a92a4b43e24f267f968a4338b2">&#9670;&nbsp;</a></span>alpha() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a>&amp; <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::alpha </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>A read-write reference to the angle of the first angle. </dd></dl>

</div>
</div>
<a id="a271449e2a6b745b4e97f7546bef1bc0a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a271449e2a6b745b4e97f7546bef1bc0a">&#9670;&nbsp;</a></span>alpha() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::alpha </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The value of the first angle. </dd></dl>

</div>
</div>
<a id="a293acf98b393c33700fa3ef73ebb5908"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a293acf98b393c33700fa3ef73ebb5908">&#9670;&nbsp;</a></span>AlphaAxisVector()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classEigen_1_1EulerAngles.html#adc9885adf8d93f64b74413aa1df38760">Vector3</a> <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::AlphaAxisVector </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the axis vector of the first (alpha) rotation </dd></dl>

</div>
</div>
<a id="a86c18f2f491ecd7e1c1bd41ce5a58034"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86c18f2f491ecd7e1c1bd41ce5a58034">&#9670;&nbsp;</a></span>angles() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html#adc9885adf8d93f64b74413aa1df38760">Vector3</a>&amp; <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::angles </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>A read-write reference to the angle values stored in a vector (alpha, beta, gamma). </dd></dl>

</div>
</div>
<a id="a430d0f255f3a671433fb2d81b7759347"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a430d0f255f3a671433fb2d81b7759347">&#9670;&nbsp;</a></span>angles() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classEigen_1_1EulerAngles.html#adc9885adf8d93f64b74413aa1df38760">Vector3</a>&amp; <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::angles </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The angle values stored in a vector (alpha, beta, gamma). </dd></dl>

</div>
</div>
<a id="a8fdec84c62624ab5950eb0855d176464"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8fdec84c62624ab5950eb0855d176464">&#9670;&nbsp;</a></span>beta() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a>&amp; <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::beta </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>A read-write reference to the angle of the second angle. </dd></dl>

</div>
</div>
<a id="a8701809550b7423d8747b2c54d54a758"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8701809550b7423d8747b2c54d54a758">&#9670;&nbsp;</a></span>beta() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::beta </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The value of the second angle. </dd></dl>

</div>
</div>
<a id="a8688fc64fbfe00f0fc13c97ec20de8bf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8688fc64fbfe00f0fc13c97ec20de8bf">&#9670;&nbsp;</a></span>BetaAxisVector()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classEigen_1_1EulerAngles.html#adc9885adf8d93f64b74413aa1df38760">Vector3</a> <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::BetaAxisVector </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the axis vector of the second (beta) rotation </dd></dl>

</div>
</div>
<a id="a2add1e1c2cdae9305d759c1f515fb4ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2add1e1c2cdae9305d759c1f515fb4ef">&#9670;&nbsp;</a></span>cast()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<div class="memtemplate">
template&lt;typename NewScalarType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a>&lt;NewScalarType, <a class="el" href="classEigen_1_1EulerAngles.html#a1462fffa812b7bec67c8f2e2b2daca52">System</a>&gt; <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::cast </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd><code>*this</code> with scalar type casted to <em>NewScalarType</em> </dd></dl>

</div>
</div>
<a id="a5111ba70822f6f057e6a294fafa6cb11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5111ba70822f6f057e6a294fafa6cb11">&#9670;&nbsp;</a></span>gamma() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a>&amp; <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::gamma </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>A read-write reference to the angle of the third angle. </dd></dl>

</div>
</div>
<a id="a73fad7a6e7becb9407fa726fa2d8fded"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a73fad7a6e7becb9407fa726fa2d8fded">&#9670;&nbsp;</a></span>gamma() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a> <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::gamma </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The value of the third angle. </dd></dl>

</div>
</div>
<a id="a2097a8d02e36a9d6b847177afa4f40fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2097a8d02e36a9d6b847177afa4f40fa">&#9670;&nbsp;</a></span>GammaAxisVector()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="classEigen_1_1EulerAngles.html#adc9885adf8d93f64b74413aa1df38760">Vector3</a> <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::GammaAxisVector </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>the axis vector of the third (gamma) rotation </dd></dl>

</div>
</div>
<a id="a88d41eba39cf221a9437028fb6431948"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a88d41eba39cf221a9437028fb6431948">&#9670;&nbsp;</a></span>inverse()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a> <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::inverse </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The Euler angles rotation inverse (which is as same as the negative), (-alpha, -beta, -gamma). </dd></dl>

</div>
</div>
<a id="aaba297075906f560e8c9b369b4b47cc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaba297075906f560e8c9b369b4b47cc6">&#9670;&nbsp;</a></span>isApprox()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::isApprox </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a>&lt; Scalar_, _System &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const RealScalar &amp;&#160;</td>
          <td class="paramname"><em>prec</em> = <code><a class="elRef" href="../structEigen_1_1NumTraits.html">NumTraits</a>&lt;<a class="el" href="classEigen_1_1EulerAngles.html#a7893abd67974354b798200b3b458262f">Scalar</a>&gt;::dummy_precision()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if <code>*this</code> is approximately equal to <em>other</em>, within the precision determined by <em>prec</em>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="elRef" href="../classEigen_1_1DenseBase.html#ae8443357b808cd393be1b51974213f9c">MatrixBase::isApprox()</a> </dd></dl>

</div>
</div>
<a id="a0de66ebc0a5fafb3e9c02acab6ef7f66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0de66ebc0a5fafb3e9c02acab6ef7f66">&#9670;&nbsp;</a></span>operator QuaternionType()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::operator <a class="el" href="classEigen_1_1EulerAngles.html#a3000fb4d6de76cf9b68ae2766e4dd1c6">QuaternionType</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Convert the Euler angles to quaternion. </p>

</div>
</div>
<a id="a928b1ec13cb2aa8e885b3e0c9ffacfb7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a928b1ec13cb2aa8e885b3e0c9ffacfb7">&#9670;&nbsp;</a></span>operator-()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a> <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::operator- </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>The Euler angles rotation negative (which is as same as the inverse), (-alpha, -beta, -gamma). </dd></dl>

</div>
</div>
<a id="a0d9cccdfc7baa141ad22673fe7cb6b98"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0d9cccdfc7baa141ad22673fe7cb6b98">&#9670;&nbsp;</a></span>operator=() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<div class="memtemplate">
template&lt;class Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a>&amp; <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" href="../classEigen_1_1MatrixBase.html">MatrixBase</a>&lt; Derived &gt; &amp;&#160;</td>
          <td class="paramname"><em>other</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Set <code>*this</code> from either:</p><ul>
<li>a 3x3 rotation matrix expression(i.e. pure orthogonal matrix with determinant of +1),</li>
<li>a 3D vector expression representing Euler angles.</li>
</ul>
<p>See EulerAngles(const MatrixBase&lt;Derived, 3&gt;&amp;) for more information about angles ranges output. </p>

</div>
</div>
<a id="a09721e16bfbbd908adf14f12e5469535"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a09721e16bfbbd908adf14f12e5469535">&#9670;&nbsp;</a></span>operator=() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<div class="memtemplate">
template&lt;typename Derived &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a>&amp; <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::operator= </td>
          <td>(</td>
          <td class="paramtype">const <a class="elRef" href="../classEigen_1_1RotationBase.html">RotationBase</a>&lt; Derived, 3 &gt; &amp;&#160;</td>
          <td class="paramname"><em>rot</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Set <code>*this</code> from a rotation.</p>
<p>See <a class="el" href="classEigen_1_1EulerAngles.html#aa4bd914c869a7ad06252eb9672326a06">EulerAngles(const RotationBase&lt;Derived, 3&gt;&amp;)</a> for more information about angles ranges output. </p>

</div>
</div>
<a id="a5db785d10c675039efa3368ded1270ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5db785d10c675039efa3368ded1270ef">&#9670;&nbsp;</a></span>toRotationMatrix()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Scalar_ , class _System &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1EulerAngles.html#a9af783749247585b5660ed5209241759">Matrix3</a> <a class="el" href="classEigen_1_1EulerAngles.html">Eigen::EulerAngles</a>&lt; Scalar_, _System &gt;::toRotationMatrix </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>an equivalent 3x3 rotation matrix. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="EulerAngles_8h_source.html">EulerAngles.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceEigen.html">Eigen</a></li><li class="navelem"><a class="el" href="classEigen_1_1EulerAngles.html">EulerAngles</a></li>
    <li class="footer">Generated on Thu Apr 21 2022 13:08:00 for Eigen-unsupported by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
